/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"E5F85ED0-A7CA-4883-9291-284855BEC24A"}
 */
function agregar_producto(event) 
{
	if (planes_to_plan_produ.newRecord(false)==-1) 
	{
		globals.gMensaje= 'No pudo dar alta el producto en el plan de produccion (newRecord)'
		globals.DIALOGS.showInfoDialog('Planes de Fabricacion',  globals.gMensaje,  "OK") //  30/12/2013		return false;
		}
	else 
	{
	//	planes_to_plan_produ.fecha = application.getServerTimeStamp();
		planes_to_plan_produ.fecha = fecha;        // sugiere fecha del plan
		planes_to_plan_produ.planes_id= planes_id; 
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"19F6869A-864C-4769-826B-3ACE5569F51E"}
 */
function eliminar_producto(event) 
{
	planes_to_plan_produ.deleteRecord();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"FBE31C5E-1632-4BDB-A2E4-4EB4AE93A6E2"}
 * @AllowToRunInFind
 */
function onAction_calcula_necesidades(event) 
{	// BORRAR todo lo existente para ese plan cuando se calcula
	forms.planes_det.planes_to_necesidades.deleteAllRecords()
	var $neces = databaseManager.getFoundSet('industria','necesidades')
	if(planes_to_plan_produ)
	{
		var $cant = databaseManager.getFoundSetCount(planes_to_plan_produ)
		for (var j = 1 ; j <= $cant ; j++)
		{
			planes_to_plan_produ.setSelectedIndex(j)
		//  LLAMAR RUTINA DESPIECE y llamarla  x c/elemento de esta relacion
			//var ds_dsp_sal = globals.gdespiece(planes_to_plan_produ.producto_id,planes_to_plan_produ.plan_produ_to_productos.version_id_default,planes_to_plan_produ.cantidad)   //  TODO para documentacion  // original
			//if(ds_dsp_sal != false)
			var ds_doble = globals.gdespiece(planes_to_plan_produ.producto_id,planes_to_plan_produ.plan_produ_to_productos.version_id_default,planes_to_plan_produ.cantidad,0)   
			var ds_dsp_sal = ds_doble[0,0]     // arbol costos
			if(ds_dsp_sal != false)
			{
			
		//  GENERAR NECESIDADES leyendo DATASET ds_dsp_sal
				var $tope_filas = ds_dsp_sal.getMaxRowIndex()
				for( var i = 1 ; i <= $tope_filas ; i ++)
				{	
					if (ds_dsp_sal.getValue(i,4) != 1) //  TODO el articulo del plan (nivel 1 de la rutina) debe ser grabado en necesidades ????
					{
					//  ver si ya existe en NECESIDADES -> si= graba , no=acumula 
						if($neces.find() == false)
						{
							globals.gMensaje= 'No pudo hacer find en NECESIDADES'
							globals.DIALOGS.showInfoDialog('Planes de Fabricacion',  globals.gMensaje,  "OK") //  30/12/2013		
						}
						$neces.producto_id = ds_dsp_sal.getValue(i,1)
						$neces.fecha = 	utils.dateFormat(planes_to_plan_produ.fecha,'dd-MM-yyyy');
						$neces.planes_id = planes_id;
						var cuantos=$neces.search();
						if(cuantos==0)
						{
							planes_to_necesidades.newRecord();
							planes_to_necesidades.producto_id   = ds_dsp_sal.getValue(i,1)
							planes_to_necesidades.fecha         = planes_to_plan_produ.fecha;  // TODO si se repite alguna, queda en neces. la primera fecha grabada
							planes_to_necesidades.cantidad      = ds_dsp_sal.getValue(i,5)
							planes_to_necesidades.cantidad_real = ds_dsp_sal.getValue(i,5)     // TODO x ahora pone lo mismo ds_dsp_sal.getValue(i,5))
							planes_to_necesidades.planes_id     = planes_id; 
						}
						else
						{  //  si al llamar la rutina se le pasa la cantidad del plan , aqui no multiplicar, si se le pasa 1, aqui multiplicar
							//$neces.cantidad = $neces.cantidad + (planes_to_plan_produ.cantidad * ds_dsp_sal.getValue(i,5));
							$neces.cantidad = $neces.cantidad + ds_dsp_sal.getValue(i,5);      // TODO cant-. compuesta del producto devuelto por la rutina
							$neces.cantidad_real = $neces.cantidad; // TODO x ahora pone lo mismo 
						}
						// GRABA NECESIDADES
						var estado_save=databaseManager.saveData();
						if (estado_save==false)
						{
							globals.gMensaje= 'No pudo grabar necesidades del plan'
							globals.DIALOGS.showInfoDialog('Planes de Fabricacion',  globals.gMensaje,  "OK") //  30/12/2013
						}
					}
				}
			}
		}
	}
	
	// MOSTRAR lo CALCULADO 
	onAction_ver_necesidades(null);
	

}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"22920ED4-6F9F-4089-983F-8329C422B614"}
 */
function onAction_ver_necesidades(event) 
{
	forms.planes_neces.controller.loadRecords(planes_to_necesidades)  // los relacionados
	forms.planes_neces.controller.sort("necesidades_id asc") 
	
	// Reemplaza showFormInDialog
	var ventana=application.createWindow('necesidades',JSWindow.MODAL_DIALOG)
	ventana.setInitialBounds(-1, -1, -1, -1)
	ventana.title = "Necesidades del Plan " + planes_id;
	forms.planes_neces.controller.show(ventana)
	
}
